package com.baidu.leetcode.yangge.autotest;

import java.lang.reflect.Method;
import java.util.concurrent.atomic.AtomicInteger;

/**
 * 通过自定义注解 + 反射的方式，找到需要测试的方法进行测试
 */
public class AutoTestClient {

    public static void main(String[] args) {
        CalcHelpDemo calcHelpDemo = new CalcHelpDemo();
        int para1 = 10;
        int para2 = 0;
        Method[] methods = calcHelpDemo.getClass().getMethods();
        AtomicInteger bugCount = new AtomicInteger();
        //要写入的文件路径 如果不存 会自动创建
        String filePath = "BugReport.txt";
        for (int i = 0; i < methods.length; i++) {
            if (methods[i].isAnnotationPresent(BaiduTest.class)) {
                try{
                    methods[i].invoke(calcHelpDemo,para1,para2);//放行
                }catch (Exception e) {
                    bugCount.getAndIncrement();
                    //打印异常 并写入文件中
                    System.out.println("异常名称:"+e.getCause().getClass().getSimpleName());
                    System.out.println(methods[i].getName()+"出现了异常");
                }finally {
                    //将异常数写入文件
                }
            }
        }
    }
}
